#include   <stdio.h>
#include  <stdlib.h>
#include    <time.h>

#define LENGTH 30

void printf_data(int arr[],int n)
{
    for(int i=0;i<n;i++) printf("%d ",arr[i]);printf("\n");
}

void printf_hint(int n)
{
    for(int i=0;i<n;i++) printf("   ");printf("^");
}

void quick_sort(int arr[], int low,int high)
{
	if (low >= high)
	{
		return;
	}
	int first = low;
	int last = high;
	int key = arr[first];/*取第一个数据*/
    printf("======================\n");
    printf_data(arr,LENGTH);
	while (first<last)
	{
		while (first < last && arr[last] >= key)    /*从右往左找一个比arr[left]小的值*/
		{
			--last;
		}
		arr[first] = arr[last];
		while (first < last && arr[first] <= key)    /*从左往右找一个比arr[left]要大的值*/
		{
			++first;
		}
		arr[last] = arr[first];
        printf_data(arr,LENGTH);
	}
	arr[first] = key;
    printf_data(arr,LENGTH);
	quick_sort(arr, low, first - 1);    /*排左边*/
	quick_sort(arr, last + 1, high);    /*排右边*/
}

int main()
{
    int i,j;
    int arr[LENGTH] = {0};

    /*随机数设置种子*/
    srand((unsigned)time(NULL));
    /*赋值*/
    for(i=0;i<LENGTH;i++)
        arr[i] = rand()%100;
    /*排序前*/
    for(i=0;i<LENGTH;i++)
        printf("%d ",arr[i]);printf("\n");

    quick_sort(arr,0,30);

    /*排序后*/
    for(i=0;i<LENGTH;i++)
        printf("%d ",arr[i]);printf("\n");
    return 0;
}

/*
weiqifa@bsp-ubuntu1804:~/c$ gcc kuaisupaixu.c && ./a.out
7 15 33 75 85 64 48 17 52 46 76 81 14 4 41 87 36 3 4 23 44 66 0 19 62 18 51 76 83 87
======================
7 15 33 75 85 64 48 17 52 46 76 81 14 4 41 87 36 3 4 23 44 66 0 19 62 18 51 76 83 87
0 15 33 75 85 64 48 17 52 46 76 81 14 4 41 87 36 3 4 23 44 66 15 19 62 18 51 76 83 87
0 4 33 75 85 64 48 17 52 46 76 81 14 4 41 87 36 3 33 23 44 66 15 19 62 18 51 76 83 87
0 4 3 75 85 64 48 17 52 46 76 81 14 4 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 4 3 4 85 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 4 3 4 85 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 4 3 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
======================
0 4 3 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 4 3 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 4 3 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
======================
0 4 3 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 3 3 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 3 4 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
======================
0 3 4 4 7 64 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 51 76 83 87
0 3 4 4 7 51 48 17 52 46 76 81 14 85 41 87 36 75 33 23 44 66 15 19 62 18 76 76 83 87
0 3 4 4 7 51 48 17 52 46 18 81 14 85 41 87 36 75 33 23 44 66 15 19 62 81 76 76 83 87
0 3 4 4 7 51 48 17 52 46 18 62 14 85 41 87 36 75 33 23 44 66 15 19 85 81 76 76 83 87
0 3 4 4 7 51 48 17 52 46 18 62 14 19 41 87 36 75 33 23 44 66 15 87 85 81 76 76 83 87
0 3 4 4 7 51 48 17 52 46 18 62 14 19 41 15 36 75 33 23 44 66 75 87 85 81 76 76 83 87
0 3 4 4 7 51 48 17 52 46 18 62 14 19 41 15 36 44 33 23 44 66 75 87 85 81 76 76 83 87
0 3 4 4 7 51 48 17 52 46 18 62 14 19 41 15 36 44 33 23 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 51 48 17 52 46 18 62 14 19 41 15 36 44 33 23 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 23 48 17 52 46 18 62 14 19 41 15 36 44 33 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 23 48 17 33 46 18 62 14 19 41 15 36 44 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 23 48 17 33 46 18 44 14 19 41 15 36 44 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 23 48 17 33 46 18 44 14 19 41 15 36 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 23 48 17 33 46 18 44 14 19 41 15 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 15 48 17 33 46 18 44 14 19 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 15 19 17 33 46 18 44 14 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 15 19 17 14 46 18 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 15 19 17 14 18 18 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 15 19 17 14 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 15 19 17 14 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 19 17 19 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 19 17 19 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 19 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 19 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 19 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 19 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 19 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 18 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 18 19 23 44 46 33 41 48 36 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 36 46 33 41 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 36 41 33 41 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 36 41 33 44 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 18 19 23 36 41 33 44 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 41 41 44 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 41 41 44 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 48 46 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 46 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 62 52 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 62 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 52 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 87 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 83 85 81 76 76 83 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 83 85 81 76 76 87 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 83 85 81 76 76 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 85 81 76 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 76 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
======================
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
0 3 4 4 7 14 15 17 18 19 23 33 36 41 44 46 48 51 52 62 64 66 75 76 76 81 83 85 87 87
weiqifa@bsp-ubuntu1804:~/c$

*/
